- In most circumstances, it's the little things "done right" that make the difference. Achieving deadlines, completing code with minimal bugs, and releasing bug-free software helps to raise confidence in outside stakeholders. Releasing 10 small enhancements without interruption versus one large distributive change always wins in the long run.
- Saying "yes" to one thing means "no" to another. This might seem like a no-brainer, but the second part is not always recognized. In business, time is money. Deciding to work on an enhancement or bug must consciously translate into the reality that it takes priority over other work.
- Actively identify and accept feature/software obsolescence. From the moment a new technology or feature is released, the clock is ticking. It's important to be proactive toward this concept and plan accordingly. Microsoft is an example of a software company with a proven history of deprecating functionality and eliminating support over time.
- Follow the "put in the big rocks first" approach. Do not shy away from the hard or difficult tasks in a project. Tackle those areas first. This will help identify problems early and provide better estimates for remaining work (as smaller items are easier to estimate).
- With code and software features, separate the "gotta haves" from the "nice to haves." Most projects admittedly have both. Be pragmatic about the proper category for each item. As deadlines approach, this is invaluable for determining a minimally viable path.
- In regards to feature requests, champion assimilation as much as possible. A big budget or lengthy project will raise the eyebrow of any executive. Start by accommodating the request within the current code and architecture. Consciously move beyond that only when absolutely necessary and actively over-communicate that decision.
- Skills take years to harden, but mastering patience is a life-long journey. In a profession with broad opinions, varying personalities, and constant deadlines, being patient and mindful of others is paramount. Software development is about more than lines of code.
- Do not discount or disrespect aspects of a job. Passing judgment on tasks can cloud opportunity. These include identifying areas of improvement, becoming a material expert, and expanding one's ability for or knowledge of a given topic.
- Never stop striving for "the right way." Many companies choose "right now" over the "right decision." Respecting that decision is important, but it should not impede continuous education about the risks involved. Developers are hired for their expertise as much as their ability.
- Consciously revisit process, code and functionality. Anything ignored will become the standard. Adopting concepts such as Agile and Lean development can help. Additionally, categorizing and tracking technical debt can improve visibility and provide points of discussion.
10 Realizations About Developing in a Business
Join the DZone community and get the full member experience.Join For Free
Discover how to increase change awareness, code quality, and maintainability through straightforward code reviews, with a simple, lightweight workflow, brought to you in partnership with JetBrains.