🕑 Estimated reading time: 8mn
By Bastien Gallay, Agile coach @ Upwiser
Developers like managers have ideas they cannot always explore at work. Test-Driven Development and Pair programming are two of these.
Recommended: “The Expert” YouTube shorts
Amongst developers, the turnover is very high [Statistics origin is unknown]:
In addition, new types of jobs join the IT realm: mathematicians become data scientists, ergonomists become UX designers, etc.
Only 36% of IT projects are delivered on time. Some companies add more supervision, others more resources. Though, this reduces decision capacity.
Scope /\ / \-- Estimated project / \ (Our baseline) ------ | Cost Time
Scope | /\ / \ / /\ \ / | |---------- What has been sold (Scope +, Time -, Cost -) / //\\ \ / // \\ \ / + + \ / /| |\-------- Estimated project / / / \ \ \ / / -------- \ \-- What has been delivered (Scope ++, Time ++, Cost ++) / ------------ \ ----------------------- | | Time Cost
Agile is an empirical methodology which manifesto has been officially written in 2001. The four values mentioned in the manifesto are:
In all of this, Agile is meant to reduce the failure rate and increase the success rate of projects. This philosophy is not magical and not practical for projects of all shapes and sizes, though. Specifically, engagement and communication is what makes projects feel better.
The Delegation Poker This exercise will simplify the process of decision making by distributing the tasks. The deciders have to agree on set rules what is their most appropriate level of delegation
The Lean coffee The Lean coffee is an exercise meant to speed up meetings, make them more productive and allow everyone to contribute. Like most meetings, a Lean coffee will start with an objectives and key points review. After this, meeting attendants will vote for the points that matter the most. The most important topics are then tackled one by one with a thumbs up / thumbs down vote after the end of each five-minute session to decide if the topic is worth discussing further.
The advantage of such a solution is to prioritize the sensitive points of the meeting, allow everyone to have a voice and allow for post-meeting discussions with the people who wanted to prolong the discussions to understand why they wanted more time.
Always try to include managers into the steps of your project. Your project exposes several layers of super-tasks: Todos < Days < Features < Iterations < Versions < Products < Portfolio < Strategy. Each of these layers exposes its own objectives with people accountable with the success of those objectives. Intel and Google successively thought about the organization of of what is called Objectives and Key Results.
Do not hesitate to use checklists to track what has been done and what has been completed.
In a professional context, Trust can be expressed as the following formula:
Cr + Re + In Trust = -------------- SI Cr: Credibility. What your CV and your experience says of you. Re: Acquired responsibilities. Grows with your stay in your positions and in your career. In: Intimacy. Your good relationships with your coworkers. SI: Self-Interest or Orientation. Simply put, your interests.
Here is a standard team efficiency model for a project:
---------> / | ---- Improvement Training / | --- | /-------- Normalization | / | / ---- / \___/ | Conflicts
How to start working with Agile: Start with a pilot project, experiment, make sure both parties (client and internal) have expertise and that the teams are both ready and in agreement.
It is common to follow the DRY - Do not Repeat Yourself - rule to avoid one of the most common causes of technical debt: code duplication. The problem: why does this principle does not apply to project configuration, duplicated from project to project. With such a tool, you could:
Knuckle currently supports the following tools: Prettier, ESLint, TSLint, CommitLint, Husky, Lint-Staged. About CommitLint: this tool auto-generates your changelog by requiring developers to follow rules when they commit. Next up: Support for StyleLint, Jest, an actual eject, an add wizard and audit. Do not hesitate to contribute to support your favorite tool!
The installation of Knuckle is strictly identical to ESLint, Prettier, etc:
$ yarn add --dev knuckle $ yarn knuckle add ; select your tools $ yarn knuckle up ; You are ready to go!
Knuckle can also use existing dependencies to generate a list of dependencies to install and configurations to edit. It will automatically detect and use the dependency manager set for your project!
$ mkdir .knuckle $ touch .knuckle/.prettierrc ; The name of the configuration file you want to override $ Edit the configuration file with the desired behavior $ yarn knuckle up --no-install ; Done!
$ yarn remove knuckle $ rm -rf .knuckle
By Julien Roy, Java architect @ Bankin’
The idea of this talk stemmed from a client who could not evaluate the load of their future application. By load we mean the number of simultaneous users or their session duration. One of the only objectives was to propose an API that could respond in less than 50ms and scale infinitely.
To achieve this, some ground rules were laid: the application was to be stateless, require no I/O, use cache whenever possible and be built with autoscaling in mind. In parallel, load tests validated the scalability and the set objectives. They were set to 250 Virtual Users with 10 minutes of ramp-up time and 15 minutes of execution.
The process is iterative and must be run every time a bottleneck is removed, until the objectives are reached.
Pumba has been recommended to chaos-test Docker infrastructures. This tool can be used to simulate latency between multiple containers.