Blitzkrieg in Software Development
Producing new software is not easy job!

Blitzkrieg in Software Development

This article is about to how to win your new software production battle in quickest way by employing the right units in the right place at the right time simmilar to Blitzkrieg or lighting war!

In my experiences there is no absolute way of practicing SDLC, most successful corporations adopt best practices in their teams and changing it depends on their needs.

 I listed below bullet points that I think is very crucial and decisive factor in SDLC, and if follows properly you will get better and faster results at end, The bullet points here extracted from my Lean and Agile development experiences with minor changes;

  • Define Clear mission for the team: Be clear about what the team need to deliver in the product, it helps team members adjust their activities and aligned it to end goals, Create business canvas for the product or service that you want to deliver and pin it to the team board so every team member can see what would be final goal;
  • Product owner is your Top gun: Product owner defines your product backlog, prioritizes the features and is a key stakeholder in SDLC, he or she must work closely with the team, he must work personally with developers, All team members must have access to product owner during development time, So if you have awesome product owner on your team, it will remove many hassles for your team that cost the team precious times;
  • Create generative and transparent culture in the team: Let every team member participate in team activities, Let every team members attend in design session, Let the team create tasks, Let their voices heard in management and planning meetings, Let them own the work, be transparent and break cilos in different management and working levels, let the team learn from each other and let technical manager or other managers learn from the team;
  • Create stream value mapping for the current process: It is very powerful tool, helps your team understand the process and remove the wastes, remove useless meetings and disruptive tasks for the team.
  • Always use sprint Zero: Use sprint Zero for preparing all the team required for the development process, CI/CD and any things that the team needs, product backlog tools, TFS setup…;
  • Build a prototype first: Before starting any new product create a simple prototype, it saves you a lot of time in future, asks a senior developer and your product owner work together and build a prototype for the product even before assembling your team, it is more effective than tons of documents;
  • Hire problem solvers, not just another coder: Hire people that fit in your generative and transparent culture, They must believe in improvement and dare to challenge themselves and anybody else to fix a faults and issue that they can see, must dare to bring their idea to the table and can understand the benefit of small improvements;
  • Your software Architecture must independent from any specific software stack: That means your product has a flexible design so you can start many tasks and assign teams in parallel for different parts of your product;
  • Don’t go for detail plans postpone most decisions to a time that you have to: I saw many projects stopped and teams went to idle because they have to stick to a detailed plan provided by upper management, Give complete freedom to your team to decide what they need in their daily operations as long as it satisfies the overall strategy and business canvas you provided for them;
  • Use fast and best hardware for your development team: It saves time a lot! I saw many companies didn't spend money on PCs, monitors and network infrastructure, just imagine how much time developer wasted because of their systems waiting for compile, checked in and other daily development tasks and multiply to the number of days and developers that working on the project and you will end up with two, three sprints, that wasted because of some saving you have done for the hardware!
  • The team must monitor performance and quality of their work every day: Teams need to report their quality of work and performance, and this report must be visible for every day for the team alongside other items like burning up/down charts, team velocity, and Kanban board. Code metrics, Code coverage (depend on the project team can decide what code coverage percentage would be suitable), functions with Cyclomatic complexity above 5 and any other code metrics that shows the software development quality;
  • All team members must be actively involved in software modules design, sprint planning: It is very obvious but most time ignored by team leaders and managers;
  • Don’t let developers just work on a specific module because they wrote it in first place or know many things about it: It forces all developers to work on every part of system and not just specific area also it helps them collaborate more, their coding skills improves by learning each other code and they can understand more about the product they delivering. It leads to better and maintainable piece of software.

The above bullet points are not something new but I want to emphasize them as tricks that help you deliver a software product in shortest time and in good quality. I hope these tricks save you a time and energy in your next software job you have.

To view or add a comment, sign in

More articles by Matt (Mehdi) Atefi

Others also viewed

Explore content categories