top of page

THINGS ABOUT SOFTWARE DEVELOPMENT

Home: Welcome
Home: Blog2
Search
Writer's pictureZeCoder

5 Levels of Maturity

I remembered a lecture I attended a while back about the Capability Maturity Model (CMM) and I thought I write my version of it from my experience of the software development process. So, without anymore chit chat, let's start.



Level 1 - "Build & Fix"


The initial stage of every developer. A person in a room typing code in hope of creating a world changing program or just for fun. The process is simple: You type some code and see if it runs. If it doesn't you fix the problem and run it again until you are satisfied with the result and you ship it.






Level 2 - "Go with what worked"


You reach this level after you have completed one or more successful projects using the "Build and Fix" approach. Now you have some experience to know what works for you when developing software. Usually people realize it is better to test parts of the program instead of building the whole thing and start debugging it.




Level 3 - "A defined process"


At this point you've been through several successful projects and you feel ready to tackle bigger ones. Pretty soon you realize that bigger projects may require more work, usually more than you planned for. So, to keep the project on schedule you start allocating part of the work to other people. Taking what you learned from what worked you just assign parts of the work you previously did yourself to professionals.




Level 4 - "An improved process"


You are a professional software developer now, well at least process wise. From here you need to improve and optimize your process to lower "time to market" and increase quality. To do this you need to think about automation. You need to build/configure/rent some tools to help you with the grunt work of bringing your products to the market.





Level 5 - "The pro process"


With a level 5 process you can support fast and high quality deployments of your products. Your speed and quality is limited only by your build time and automatic test coverage. Implementing a level 5 process is something that needs to be considered cost wise. There is a big overhead compared to the previous levels and although you get high quality and fast delivery speeds, you need to consider if the revenue you get from selling your products is sufficient to support such a process.




48 views0 comments

Recent Posts

See All

Development Priorities

When developing software there are many things that need to be done: features, bugs, testing, etc. and not all of them have the same...

Software Development Roles

Who are those people that actually do the development work? I've worked for companies that had a nicely defined hierarchy of roles and...

Subscribe Form

Home: Subscribe
Home: Contact
  • facebook
  • twitter
  • linkedin

©2020 by OfirNoy. Proudly created with Wix.com

bottom of page