Skip to main content

Software Development Macro and Micro Process

If you think that in year 2012 all companies which produce software and IT divisions in our world have already their optimized software development process, you are wrong. It seems that we - software architects, software developers or whatever your title is - still need to optimize the software development process in many software companies and IT divisions.

So what do you do if you enter a software company or IT division and you see following things:

1. There is a perfect project management process to handle all those development of software but it is a pure project management without a context to software development. So basically you only take care of cost, time, budget and quality factors. In the software development you still use the old fashioned waterfall process.

2. From the tooling point of view: you have a project management planning and controlling tool but you are still in the beginning of Wiki (almost no collaboration tool) and you don't use issues tracking system to handle all the issues for the development of your software components and applications. You use Winword and Excel to define your requirements and you cannot transform them to your software products since you don't have any isssues tracking system. No chance to have traceability from your requirements down to your issues to be done in your software components and applications.

3. Maven is already used but with a lot customization and not intuitively used. The idea of using a concrete already released version of dependencies was not implemented. Instead you always open all the dependently projects in Eclipse. You can imagine how slow Eclipse works since you need to open a lot of projects at once although you only work for one project. Versioning in Maven is also not used correctly e.g.: no SNAPSHOT for development versions.

4. As you work with webapp you always need to redeploy to the application server. No possibility to hot deploy the webapp. Use ctrl-s, see your changes and continue to work without new deployment is just a dream and not available.

Luckily as an experienced software architect and developer we know that we can optimize the two main software development processes:

1. Software Development Macro Process (SDMaP): this is the overall software development lifecycle. In this process model we define our requirements, we execute analysis, design, implementation, test and we deploy the software into production. Waterfall process model and agile process model like RUP and Scrum are examples of SDMaP.

2. Software Development Micro Process (SDMiP): this is the daily work of a software developer. How a software developer works to develop the software. A software developer codes, refactors, compiles, tests, runs, debugs, packages and deploys the software.

More information on SDMaP and SDMiP:
The picture below shows the SDMaP and SDMiP in combination. The macro (SDMaP) and micro (SDMiP) process meet at the implementation phase and activity. So changing and optimizing one has definitely side effects on the other one and vice versa.


At the example of organization mentioned above it is important that we optimize both processes since they work hand in hand. So how can the optimization for macro and micro process looks like?

1. SDMaP:
  • Introduce Wiki for IT divisions and software companies. You can use WikIT42 to make the structure of your Wiki and use Confluence as your Wiki platform.
  • Introduce Wiki with issue tracking like JIRA and combine both of them to track your requirements.
  • Refine the requirements into issues (features, tasks, bugs, etc.) to the level of the software components and applications, because at the end you will implement all the requirements using your software components and applications.
  • Introduce iterative software development lifecycle instead of waterfall process. This is a long way to go since you need to change the culture of the company and you need a full support from your management.
2. SDMiP
  • Update the Maven projects to use the standard Maven mechanism and best practices with no exception. Transform the structure of the old Maven to the new standard Maven using frameworks like MoveToMaven
  • Use Maven release plugin to standardize the release mechanism of all Maven projects.
  • Use m2e Eclipse plugin to optimize your daily work as a software developer under Eclipse and Maven.
  • Use Mylyn to integrate your issue tracking system like JIRA into your Eclipse IDE.
  • Introduce JRebel to be able to hot deploy quickly your webapps into the application server.
Optimizing macro and micro process for software development is not an easy task. In the macro process you need to handle all those relationships with other divisions like Business Requirements, Quality Assurance and Project Management divisions. You need to convince them that your SDMaP optimization is the best way to go. This is more an organizational challenge and changes than the micro process optimization.

The micro process is also not easy to optimize, since you need to convince all developers that they can be more productive with the new way of working than before. You need to show them that it is a lot more faster if you don't open a lot of Java projects within your Eclipse workspace. Also using JRebel to deploy your webapp to your application server is the best way to go. Normally developers are technical oriented, so if you can show them the cool things to make, they will join your way.


Comments

Eleftheria K. said…
Hello Mr Dewanto,

Nice blog! Is there an email address I can contact you in private?

Thanks,

Eleftheria Kiourtzoglou

Head of Editorial Team

Java Code Geeks
email: eleftheria[dot]kiourtzoglou[at]javacodegeeks[dot]com
Unknown said…
Project Management played the most vital role in business. It helps to allocate and manage project resources, roles, and responsibilities and limit the rights to access projects to required persons only. With the proper management of project the business grow up more.Keep sharing such knowledgeable post.
Stephanica said…
Thank you for the nice article here. Really nice and keep update to explore more gaming tips and ideas.

Game Testing

Video Game QA

IOS Game QA Testing Services

Game Performance Testing

Quality Assurance Games
Thanks for sharing this blog!!!
I will post to this page on my blog. I am sure my visitors will find that very useful.

Online Food Ordering Software
The delivery of native applications by the company is a good idea, but in my opinion such an application should be developed all the time. The company like https://grapeup.com/services/application-transformation does it very well which is constantly upgradeits IT solutions.
Mounika said…
Nice explanations of the CLOUD TECHNOLOGY basics, it's good to know that! A friend of mine has implemented a company which is the best ERP software in Hyderabad right now, she provides cloud based ERP software in Hyderabad, so I hope it goes well for her.
Best Regards
Inwizards said…
Hey! This is my first visit to your blog! We are
a collection of volunteers and starting
a new project in a community in the same niche. Your blog provided us beneficial information to work on. You have done a marvellous job!

Software consultant Company Frisco USA

Node js Development Company Texas USA

Sales Tracking Development Company Texas USA


Sales Fundaa said…
Great post I would like to thank you for the efforts you have made in writing this interesting and knowledgeable article. We are top CRM Software | CRM Software Mumbai | CRM Software Provider | CRM Software Pune | Field Management Software | CRM Software India
Appslure said…
Thanks for your great information. I like this topic. This site has lots of advantage. We are top Mobile App Development | Mobile App Development Company in India | Website Development Company in Delhi | Website Designing Company in Gurgaon.
Shweta gaur is one of the famous makeup artist in all over India. We are providing the best makeup artist courses and more other courses in over branches in Delhi.
Bridal Makeup Makeup Artist in Delhi Makeup Artist Best Makeup Artist in Delhi Best Makeup Artist in East Delhi Top Makeup Artist in Delhi Top Makeup Artist in India Bridal Makeup
Monica MS said…
I am not sure the place you are getting your information, however good topic. I needs to spend some time studying more or understanding more. Thank you for wonderful information I was in search of this info for my mission.
Chatbot Company in Dubai
Chatbot Companies in Dubai
Chatbot Development
Chatbot Companies
AI Chatbot Development
Chatbot Companies in UAE
Chatbot Company in Chennai
Chatbot Company in Mumbai
AI Chatbot Companies
Chatbot Development Companies
Playrep said…
playrep is offer you to play lots of games like - fungame, funrep, playrep etc..
Ramya Balan said…
Really very great information for that post, am amazed and then more new information are get after refer that post. I like that post.
Visitor Management System
Visitor Management System Dubai
Visitor Management Software Dubai
Visitor Management System UAE
Visitor Management Software
Visitor Management App
BClub said…
Thanks for sharing your thoughts. I truly appreciate your efforts and I will be waiting for your further write ups thank you once again.
Agen Bola Terfavorit Agen Bola Terfavorit
Taruhan Bola Terfavorit Taruhan Bola Terfavorit
Kasino Online Terlengkap Kasino Online Terlengkap
bandar Kasino Online Terlengkap
Webixy Tech said…
Thank You for sharing this information.
Webixy is a best app development company in Kanpur, Delhi, India. Webixy has experience in Native Apps development and CMS Website development. We are best Mobile App development company. You can read our blog which is very good.
Thanks for sharing this information.
Hindustan Tradecom is the best Share broker in Jaipur, jodhpur, Bikaner, Kota, Rajasthan and leading equity trader in Jaipur, Rajasthan. If you want to Open demat account in Jaipur or Open trading account in Jaipur or looking for commodity broker in Jaipur then Hindustan Tradecom is the right place for you to consult.
Thank you for sharing this information.


Mediwapp is the best Online Medical Store and a leading Online Medicine store which sells different and most trusted products like Medicines, OTC-Products and other Medicine and Surgery Devices accross India.
tak for at dele disse oplysninger.
Lautrop & Uhre er en bedste webside til smykkebutikker hvor du kan købe smykker med ædelsten. Her kan du købe FORGYLDT MESSING , FORGYLDT SØLV, guld
Thanks for sharing this information.

Apptians is the Best Staffing Company in Delhi and top Resource Augmentation company in Delhi NCR, Noida, Faridabad, Gurgaon, India. Dedicated React JS Developers and React Native developers can be hired from Apptians.
Thanks for sharing this information.
Yes Done is the best online on demand service provider in Jaipur. Get to know more about Yes Done. Contact us for getting more services at your doorstep in Jaipur.
Pheeta.in said…
Thanks for sharing this information.
Pheeta is the best online shopping sites for Salwar suits for women and woman Kurti online in Jaipur, Rajasthan. Visit us at our website for more fancy and attractive dresses and Kurtas.
Apparrant is the best Mobile App Development Company Delhi, Noida, Gurgaon, Faridabad, NCR, Toronto, Canada, and India. It is leading quality assurance and app testing company in Noida, India.
Thank you for sharing our information.

Jewellery By Mitali Jain is the best website to buy artificial jewellery online and Jain Jewellery in Jaipur. They sell fancy and attractive products like Earrings, Rings, Necklaces, Headgears, Bracelets, Mask and Glass Chains, Bookmark Jewellery, Gift Cards and many more items like this.
Kuxtal Market said…
Thank you for sharing our information.

Kuxtal Market es el mejor Supermercado sustentable en Mérida, México que ofrece entrega a domicilio de productos como nuevos productos, carnes y lacteos, comida vegana, cuidado personal, cerveza artesanal, despensay, frutas y verduras y muchos más artículos.
Apptians is the best digital marketing agency in Singapore providing digital marketing services to its customers. We are top digital marketing company Singapore. We do SEO, SMO, PPC campaign and email marketing.

Apptians is a leading SEO Agency in Singapore and Website Development Company in Singapore providing custom web design and development, magento website development, and ecommerce website development. We are also one of the reputed software companies in Singapore dealing in Mobile app development including Android applications, iOS applications and Windows applications. We are trusted SEO Agency in Singapore. We are doing SEO, SMO, email marketing, digital marketing and running PPC campaigns for our customers.
Apptians is the best digital marketing agency in toronto,montreal,ontario,Vancouver,Canada providing digital marketing services to its customers. We are top digital marketing company Canada. We do SEO, SMO, PPC campaign and email marketing.

Apptians is a leading SEO Agency in toronto,montreal,ontario,Vancouver,Canada and Website Development Company in Canada providing custom web design and development, magento website development, and ecommerce website development. We are also one of the reputed software companies in Canada dealing in Mobile app development including Android applications, iOS applications and Windows applications. We are trusted SEO Agency in toronto,montreal,ontario,Vancouver,Canada. We are doing SEO, SMO, email marketing, digital marketing and running PPC campaigns for our customers.
Thanks for sharing this information.
Biharapps is the best website design agency and mobile app development company in Melbourne, Australia. Top andoid app developers and iOS app developers , web designers in Melbourne, Australia and Software development company in Melbourne, Australia. We are Digital Marketing Agency and SEO Company in Australia.
Thanks for sharing this information.
Biharapps is the best website design agency and mobile app development company in Dubai, UAE. Top andoid app developers and iOS app developers , web designers in Dubai, UAE and Software development company in Dubai, UAE. We are Digital Marketing Agency and SEO Company in UAE.
Thanks for sharing this information.
Biharapps is the best website design agency and mobile app development company in London, United Kingdom. Top andoid app developers and iOS app developers , web designers in London, United Kingdom and Software development company in london, United Kingdom. We are Digital Marketing Agency and SEO Company in United Kingdom.
Thanks for sharing this information.
Biharapps is the best website design agency and mobile app development company in Nepal. Top andoid app developers and iOS app developers , web designers in Nepal and Software development company in Nepal. We are Digital Marketing Agency and SEO Company in Nepal.
Apptians is the best digital marketing agency in Delhi NCR, Noida, Gurgaon, Faridabad, India providing digital marketing services to its customers. We are top digital marketing company in New Delhi NCR. We do SEO, SMO, PPC campaign and email marketing.

Apptians is a leading SEO Agency in Delhi, Noida, Gurgaon, Faridabad, NCR, India and Website Development Company in New Delhi, India providing custom web design and development, magento website development, and ecommerce website development. We are also one of the reputed software companies in Delhi NCR dealing in Mobile app development including Android applications, iOS applications and Windows applications. We are trusted SEO Agency in Delhi, India. We are doing SEO, SMO, email marketing, digital marketing and running PPC campaigns for our customers.

Popular posts from this blog

Why "Polyglot Programming" or "Do It Yourself Programming Languages" or "Language Oriented Programming" sucks?

Last year we saw the launch of a new Web programming language Dart - Structured Web Programming from Google. A very interesting approach to support web application development. Not so long after Go, Groovy, Ruby, Scala, << name your DSL here >> ; we see Dart. Is it a good thing to have at least one programming language to solve one problem? The answer is, like we already know, it depends. Some important backgrounds you should know about the multi programming language paradigm are following: 1. You can read Martin Fowler article about language oriented programming with language workbenches which enables you to write small programming languages easily. In this article I see everyone writing their small languages, everywhere. In this concept we see DSL (Domain Specific Language) as the future of our programming activities. Source: http://martinfowler.com/articles/languageWorkbench.html 2. Neal Ford talked about Polyglot Programming, combining multiple programming language

Creating Spring Bean dynamically in the Runtime

In my training someone asked me whether it is possible to create an object (a Spring Bean) dynamically so you can choose which implementation you want to have  in the runtime . So at the compile time you don't know what object actually should be created yet. The application should decide what object to be created based on a property file . 1. We create an annotation so we can mark the method which should be able to create the object dynamically: ... package your.package; ... @Retention(RetentionPolicy.RUNTIME) public @interface InjectDynamicObject { } ... 2. Use the new created annotation in your method which should be able to create the object dynamically: ... @Named("customerBo") public class CustomerBoImpl implements CustomerBo { ...     @Override   @InjectDynamicObject   public Customer getDynamicCustomer() {         return this.dynamicCustomer; } ... 3. Write an aspect with Pointcut and Advise which change the ob