How to Improve the Odds of Success in Software Development

Posted by faisal movers on March 30th, 2021

How to Improve the Odds of Success in Software Development

Vietnam Software development projects are notorious for having a high failure rate. In the context of this paper, "failure" is defined as, "not meeting the project sponsor's expectation and/ or stated requirements". This would include such things as failure to function in the planned style as defined in a requirements document ,  not securing the required performance standards, going so far over budget that the project is canceled, or incurring so many imperfections that the end-users consider the system as unusable.

I began programming business lotions twenty-nine years ago. In that time I've worked as a systems support engineer, developer, answer architect, head of growth, consultant, manager, and CEO of a software busines. What I've learned from these years of experience is that projects disappoint frequently for a very short list of reasons. This paper will identify those key points of default and proposal simple steering on how to avoid them - I say simple because to adequately cover all of the ways to solve Vietnam  software development problems makes volumes of books.

1 - Requirements

Many, if not most, business have a natural history in the migration of their data storage, workflow, and financial reporting process. The usual route of changeover is to go from paper, to spreadsheet, to database, to advanced business work. During this changeover, which often comes over many years, the terminology used and workflow process that were used when the business operated on paper often goes carried over to the spreadsheet. Business jargon and processes are established around how the business needs to operate under a paper-based system and continues after the company migrates to a spreadsheet-based system. This repeats itself again when adopting the database-based structure, and so on.

The problem with this is that once a company has finally ripened to using a perfectly ability business application for streamlining workflow manages, expanding the businesses abilities for analyzing and reporting on business data, that system's full capability is rarely recognise. This is not due to the inability of information and communication technologies or the programmers creating it, it is typically caused by the business not being properly analyzed when preparing the requirements.

All too often, the internal sponsors of the project, end-users, business analysts, and other province professionals, are often in too much of a duration restriction to meet milestones implemented by a Project Manager or Business Manager. Thusly; the project misses a certainly golden opportunity to realize a much higher ROI on the system, greater productivity increases, longer life of the system, and better suitability for the road the business currently operates.

Here's how you might resolve the problem :P TAGEND

Advise/ instruct the PM: Let the PM and the project's stakeholders know of the consequences of not evaluating the workflow process and land word sufficiently.

Document the cost of needing to rewrite a system: A rewrite in only a couple of years, or worse, never get the system launched at all, compared to the extra time to conduct a proper analysis needs to be reviewed during the initial planning of the project. Engage the business analyst and/ or architect to help with this as early in the process as possible.

Question conventional lingo. Create a dictionary of the domain's "Ubiquitous Language". Challenge each call and its meaning to each stakeholder, sponsor, or end-user. In other messages, requirements reaping is more than precisely accumulating nouns and verbs.

Work with a Domain Expert: A orbit professional - versus everyday end-users - can analyze business operations that need to improve and how the system can accommodate that. Don't just assume the data set tells the whole story about how it is used. The business specialist, or domain professional, must have a solid understanding of your business ,  not the technology to be used to serve it. Again, this should be done in collaboration with the architect.

Create simple to understand user tales: Good user storeys are short, precise, and limited to single acts. They should clearly state who, what, and why for each action the end-user or the system needs to perform. Don't appoint develop requirements the documentation that fog the intent of the requirement - it's the age-old proverb of, "can't see the forest through the trees".

 

2 - Translation of Requirements to Technical Specifications

The biggest "hat trick" in developing software is taking business ideas, which are frequently preferably abstract in nature, and then converting them into unusually literal, concrete technical specifications. Many times the context of the business procedures are either not understood by the programmers or ,  not accurately translated into the technical specifications and eventually into the code of the system.

The problem with this is that you have business people raise the requirements and technical beings realizing that rendition. Unless the technical party has a true understanding of your business and, its business theories, then the translation will most often are you crazy. Unlike translating two conversations with Google translate, where a person can guess at the meaning of words not translated properly given a specific context of the conversation, a computer application cannot. Theories, procedures, wars all have to be very specific in order for personal computers to process it.

Many development corporations ascribe the task of making this translation to programmers. This is inherently flawed as programmers are dealing with the finest details of coding rather than the higher level, generalizations found in business. Bridging this crack in hypothesis and grade of detail is practically impossible to do well and, often hour causes fatal lack in the project.

This is witnessed by observing the code and likening it to the user stories. Often duration the system compounds multiple unrelated user floors into the same file, realizing it all but hopeless to understand, revise, provide, corroborate, or maintain.

Another observation is that the system will be missing complete concepts derived from the domain professionals and will be accommodated by a tedious part of system that works around the concept rather than expresses it. Examples of this would be where there are well employed, common periods of the business, which is linked to either specific data or specific procedures that are real-world things in that special business region. When evaluating the code, it is common to see none of these terms used, but instead, replaced with technological language, arbitrary abbreviations, or worse, single words. This is therefore difficult to hopeless to know if the code is truly matching the reporting requirements. Even if the end-user functionality seems to be there and operating, it doesn't mean the system was created properly. What this can lead to - and almost always does - is that there is a high probability that while the first iteration of the system might seem to work punishment, when the business wants to extend a feature's capability or, add brand-new aspects, the foundation of the code time won't supporter it. I cannot count the number of goes either I or other technologists have had to advise the client, "A rewrite is required".

Most corporations attempt to solve this issue by including a business analyst and/ or solution architect on the team.

The responsibility of the business analyst is to be a domain expert and know how to correctly document the requirements of the system in a way that technical people can understand.

The role of the designer is to take the requirements and model a plan in a way that instances a clear understanding of the requirements to the project's stakeholders and a clearly defined technical framework to work within for the programmers - thus, the "hat trick".

The problem with this is that most companionships must be considered a Solution Architect as a person who has been a senior programmer or technological team president who, due to longevity( knowledge) needs to be promoted to architect as the next logical gradation. However, this just means that we are back to the start of the problem with a programmer, albeit most experienced, doing the renditions. Unless the business analyst did a superb undertaking in articulating the requirements in way that is easy for programmers to understand, there's still likely to be the gap in abstractions and understanding.

Rarely do major technologists have a deep understanding of business notions, and similarly, business psychoanalysts a deep understanding of programming. What's even more problematic is that programmers are almost never experienced in a orbit enough to offer insight or suggestions into how to improve the current business procedures or behavior the business data is organized. They rely alone on the details of the requirements and do not generally "think outside of the box". This is extremely common with offhshore growth companies.

The one hurdle regarding this is that it still takes a unique individual to truly excel at being equally competent in understanding business thoughts versus technological theories. Numerous people operate with only one type of thinking pattern, either they are very detail-oriented, meticulous thinkers, the type that make good software programmers, auditors, and NASA designers, or, then there creative, abstract thinkers who make good architects, masters, monetary reporters, and commerce professionals. The latter can more readily examine things from different perspectives where the detailed-oriented needs to make sure all the dots are connected. It is simply the altitude at which you examine a problem.

Understanding wide-ranging business handles such as customer relationship management, or supply chain management requires a far more abstract, imaginative type of thinker than does determining how to construct complex securities selling algorithms in code.

Unfortunately this is a difficult problem to solve as there are not a lot of answer inventors who have both a MSC and MBA in their education or, the hand-on business experience to augment their technological experience. However, this is really what is needed.

Like it? Share it!


faisal movers

About the Author

faisal movers
Joined: August 31st, 2020
Articles Posted: 7

More by this author